#include <string>

enum MATERIALS_LIST { NO_MATERIAL, CLOTH, LEATHER, MAIL, PLATE, MITHRIL, DRAGONBONE, STELLARMETAL };
enum POSITIONS_LIST { NO_POSITION, HEAD, CHEST, ARMS, HANDS, LEGS, FEET, BACK };

#pragma once
#include "Item.h"
class Armor :
	public Item
{
public:
	Armor() : Item(), resistance(0.0), durability(0), quality(0), material(NO_MATERIAL), position(NO_POSITION) {};
	Armor(string name, int c, int s, int g, float w, float r, int d, int q, MATERIALS_LIST m, POSITIONS_LIST p)
		: Item(name, c, s, g, w), resistance(r), durability(d), quality(q), material(m), position(p) {};
	Armor(const Armor&);
	Armor& operator=(const Armor&);
	~Armor();

	//accessors
	float getResistance() const { return resistance; }
	int getDurability() const { return durability; }
	int getQuality() const { return quality; }
	MATERIALS_LIST getMaterial() const { return material; }
	POSITIONS_LIST getPosition() const { return position; }

	//mutators
	void setResistance(float r) { resistance = r; }
	void setDurability(int d) { durability = d; }
	void setQuality(int q) { quality = q; }
	void setMaterial(MATERIALS_LIST m) { material = m; }
	void setPosition(POSITIONS_LIST p) { position = p; }
protected:
	float resistance;
	int durability, quality;
	MATERIALS_LIST material;
	POSITIONS_LIST position;
};